<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
<script type="text/javascript">
	//将函数作为参数使用，这叫回调函数
	//1.匿名函数作为参数
	function fn(f1){
		//相当于给传进来的匿名函数起了个名 叫f1
		// f1 = function(){console.log('匿名函数作为参数')}
		console.log(f1)
		f1()
	}

	fn(function(){
		console.log('匿名函数作为参数')
	})

	//===========================
	//访问那个作用域：函数只取决于声明的位置，不取决于调用的位置
	var a = 10
	function fn2(c){
		var a = 20
		console.log(a)//20
		c()
	}
	fn2(function(){
		console.log('a---',a)//10
	})

	//==============================
	var m = 10
	function fn3(b){
		var m = 20
		console.log(m) //20
		b(m)          //20
	}
	fn3(function(n){
		//m拿到的是b传过来的参数
		console.log(n,'20')
	})

	//============================

	//2.命名函数作为参数使用
	function fn4(fn){
		//相当于给fn5起了名 fn
		console.log('fn4')
		fn()
	}
	function fn5(){
		console.log('fn5')
	}

	fn4(fn5)
</script>
</body>
</html>